怎样将字符串中的"||"替换成"|"?

来源:百度知道 编辑:UC知道 时间:2024/05/17 00:19:52
怎样将字符串中的"||"替换成"|"?
以下代码:
String a = "|||";
System.out.println(a);
a = a.replaceAll("||", "|");
System.out.println(a);
运行结果为:

|||
|||||||

为什么啊?
怎样才能把字符串中的"||"替换成"|"?
replace()方法与replaceAll()方法有什么区别?
为什么replace()可以,而replaceAll()就不可以呢?

String a = "|||";
System.out.println(a);
a = a.replaceAll("\\|\\|", "|");
System.out.println(a);

replaceAll()方法是通过正则表达式来替换字符串的!!

而在正则表达式里||是有意义的!!

所以要将其进行转义! || = \\|\\|

String a = "|||";
out.println(a);
a = a.replaceAll("\\|\\|", "|");
out.println(a);

| 在java中是特殊字符
试过了 没问题
挣点分好难啊

“|”是java内的特殊字符“或”,所以会出现意料以外的结果。真的想要搞清楚为什么,就需去看方法是如何实现的。
以下是方法的实现,以及相互调用的方法:
public String replaceAll(String regex, String replacement) {
return Pattern.compile(regex).matcher(this).replaceAll(replacement);
}

public static Pattern compile(String regex) {
return new Pattern(regex, 0);
}

public Matcher matcher(CharSequence input) {
synchronized(this) {
if (!compiled)
compile();<